Skip to content

fix(ui): replace pod CLI download link with GitHub releases link (#27805)#28264

Open
KKamJi98 wants to merge 1 commit into
argoproj:masterfrom
KKamJi98:fix/help-cli-download-releases
Open

fix(ui): replace pod CLI download link with GitHub releases link (#27805)#28264
KKamJi98 wants to merge 1 commit into
argoproj:masterfrom
KKamJi98:fix/help-cli-download-releases

Conversation

@KKamJi98

@KKamJi98 KKamJi98 commented Jun 12, 2026

Copy link
Copy Markdown

The help page offered a single Linux binary served from the pod, which is the wrong binary for macOS, Windows and arm users and a surprise ~200MB download from the cluster.

Per the discussion in the issue, the button now links to the GitHub releases page for the running version instead: straight to the release tag when the server reports one (v3.4.1, v3.4.0-rc1), or the releases list for dev builds (v3.5.0+0dc5b3f).

Admins who want direct download buttons (internal mirrors, air-gapped clusters) can still configure them with the existing help.download.<os>-<arch> keys, and those can point at the binary the server keeps serving at download/argocd-linux-<arch>. Updated the operator docs to match.

Closes #27805

Checklist:

  • Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this does not need to be in the release notes.
  • The title of the PR states what changed and the related issues number (used for the release note).
  • The title of the PR conforms to the Title of the PR
  • I've included "Closes [ISSUE #]" or "Fixes [ISSUE #]" in the description to automatically close the associated issue.
  • I've updated both the CLI and UI to expose my feature, or I plan to submit a second PR with them.
  • Does this PR require documentation updates?
  • I've updated documentation as required by this PR.
  • I have signed off all my commits as required by DCO
  • I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
  • My build is green (troubleshooting builds).
  • My new feature complies with the feature status guidelines.
  • I have added a brief description of why this PR is necessary and/or what this PR solves.
  • Optional. My organization is added to USERS.md.
  • Optional. For bug fixes, I've indicated what older releases this fix should be cherry-picked into (this may or may not happen depending on risk/complexity).

@KKamJi98 KKamJi98 requested review from a team as code owners June 12, 2026 04:12
@bunnyshell

bunnyshell Bot commented Jun 12, 2026

Copy link
Copy Markdown

✅ Preview Environment deployed on Bunnyshell

Component Endpoints
argocd https://argocd-5oxoxz.bunnyenv.com/
argocd-ttyd https://argocd-web-cli-5oxoxz.bunnyenv.com/

See: Environment Details | Pipeline Logs

Available commands (reply to this comment):

  • 🔴 /bns:stop to stop the environment
  • 🚀 /bns:deploy to redeploy the environment
  • /bns:delete to remove the environment

@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 153 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
argo-cd-ui-array-push 10.67MB 153 bytes (0.0%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: argo-cd-ui-array-push

Assets Changed:

Asset Name Size Change Total Size Change (%)
main.*.js 153 bytes 3.46MB 0.0%

@KKamJi98 KKamJi98 force-pushed the fix/help-cli-download-releases branch from 2ef700e to 2a506ac Compare June 12, 2026 11:22
…oproj#27805)

The help page offered a single Linux binary served from the pod, which is the wrong binary for macOS/Windows/arm users and a surprisingly large download. Link to the GitHub releases page for the running version instead. Admins can still expose direct download buttons (internal mirrors, air-gapped) via the existing help.download.<os>-<arch> keys, which can also point at the binary the server serves at download/argocd-linux-<arch>.

Signed-off-by: KKamJi <xowl5460@naver.com>
@KKamJi98 KKamJi98 force-pushed the fix/help-cli-download-releases branch from 2a506ac to c11bef9 Compare June 12, 2026 11:33
@KKamJi98 KKamJi98 requested review from a team as code owners June 12, 2026 11:33
@KKamJi98 KKamJi98 changed the title fix(ui): link CLI download to GitHub releases for all platforms (#27805) fix(ui): replace pod CLI download link with GitHub releases link (#27805) Jun 12, 2026

@kunalworldwide kunalworldwide left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean PR. A few things I checked:

  • Version regex ^v\d+\.\d+\.\d+(-[0-9A-Za-z.]+)?$ correctly matches release tags (v3.4.1) and pre-release (v3.4.0-rc1), while sending build metadata versions (+) to the generic releases list. Makes sense since + builds don't have GitHub release tags.
  • External link correctly uses target='_blank' rel='noopener noreferrer'.
  • Backward compat for air-gapped setups preserved — help.download.<os>-<arch> ConfigMap keys still work, and the server still serves its embedded binary at download/argocd-linux-<arch>.
  • Test coverage is good — covers released versions, RC, dev builds, empty string, and undefined.
  • Docs update removes the stale note about duplicate Linux buttons.

LGTM.

@blakepettersson blakepettersson left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO I think a better way to do this would be to set default urls in the argocd-cm (in the kustomize overlays themselves), as described in #28180.

Whether we should do that is a another matter (since this could potentially be considered breaking)

@KKamJi98

Copy link
Copy Markdown
Author

That lines up with the follow-up you described in #28180 (config taking precedence over the embedded link).

One snag with shipping defaults in argocd-cm: the download URL needs to track the server version, but ConfigMap data isn't version-substituted at release time the way the image tag is (the kustomize images: transformer only rewrites image refs). So default help.download.* values would either pin to releases/latest (can mismatch the running server) or need new release tooling to inject the version. That's likely the breaking/awkward part you're hinting at.

An alternative that still gets the precedence behaviour without shipping defaults: render the configured help.download.* buttons when present, and otherwise fall back to the releases page for the running version (built in the UI from version.Version, so always version-accurate and zero-config). The embedded linux binary stays as the last-resort fallback.

Happy to reshape this PR that way, or go the argocd-cm-defaults route if you'd prefer. Which direction do you want?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Want to download the CLI tool? offers linux amd binary

3 participants